1. Field of the Invention
This invention relates to processes for automatically designing electrical circuits and integrated circuits. It relates particularly to a method for controlling the connectivity and geometry of circuit designs while modifying the design of such circuits.
2. Description of the Prior Art
Computer-aided electrical circuit design has existed for years and many different systems have been built. Nevertheless, as circuits become more and more complex they swamp the capabilities of less powerful design aids. Frequently changing technologies are creating a need for design aids that are not bound to rigid environments. The growing number of analysis and synthesis aids must be accommodated in the design environment.
One of the problems with today's design aids is their inability to accommodate the ever-increasing number of circuit synthesis and analysis tools that are in use. Typical design systems consist of many components. After layout, the design is post-processed by a design rule checker, a node extractor, a simulator, a static analyzer, a compacter, a test vector generator, fabrication preparation, and even experimental analysis tools such as circuit and timing verification. In addition to these post-processing steps, there are many pre-processing steps that occur before and during layout. Examples are programmable logic array (PLA) and gate-array generators, floor planning systems, cell library searching, wire routing, and many more. To design effectively, the designer needs to understand a complicated set of programs. Each program is often unrelated to other parts of the system, making user feedback difficult and cryptic.
Another aspect of design systems that is a problem for designers is the manner of interaction with the system. Textual design languages are typically used in batch environments where a textually specified circuit is compiled into a layout and plotted for the user's verification. Graphic design languages are more interactive and link the user with a graphics display for immediate visual feedback of the design as it is created. Textual design languages have the advantage that they are often more powerful than graphical languages, because textual languages tend to be easier to document, parameterize, and transport. In addition, textual design is less expensive because the need for graphic output is reduced and plotting devices may be shared. Graphic design languages, however, are typically easier to learn and faster to use in producing a circuit. These benefits result from the immediate feedback provided to the user and the closeness of graphical representations to the designed circuit compared with text. Some design systems provide both text and graphics.
Another deficiency in prior art systems is the requirement that the user choose between describing the design in a "sticks" form of circuit connectivity or a geometric form of placement. Sticks systems require that the circuit be described as a network of dimensionless components connected to each other with wires. The actual size of the components and wires is considered later when a design aid produces a layout. Geometric systems, on the other hand, treat the entire circuit as explicit areas of silicon, metal, etc. There are no components or wires, just the geometry that describes both. Sticks systems have the advantage that electrical connectivity information is available to the design aid for analysis of the circuit. The disadvantage is that the user must rely on the design aid to properly generate an efficient layout of the circuit (or must spend much additional effort describing the exact size and placement of each component). Geometric systems require less intelligence because they simply manage collections of polygons describing the circuit, without understanding their use.
Current electrical circuit design aids can be viewed in light of the above classifications. Early design aids for integrated circuits were textual and geometry based, for example, PAL, ICLIC and CIF. Many subsequent systems remained geometry based but provided graphics interfaces. Examples are ICARUS, Caesar, Chipmunk and Applicon's AGS. Geometry based systems also exist that allow both text and graphics input, for example, Daedalus/DPL, SILT and CADDS II.
Printed circuit design systems are typically graphics and connectivity based, for example, SUDS and Scald. More recently, the connectivity approach has been used as a basis for textual VLSI layout languages in EARL, ALI, Sticks & Stones and I. There are even connectivity based systems that allow text and graphics, for example, LAVA/Sedit.
A rare system combines text and graphics design with both connectivity and geometry. The Mulga system acts like a sticks system but displays and manipulates the fully instantiated geometry. It has a graphics editor and can be used textually with a superset of the C programming language.